
//
//  Boss.swift
//  Swift 3.0 基础语法
//
//  Created by YYY on 2017/7/19.
//  Copyright © 2017年 成品家（北京）网路科技有限公司. All rights reserved.
//

import UIKit

class Boss: NSObject {

    var name: String?
    var age: Int = 0
    //如果是private属性，使用KVC设置值的时候同样无法设置。
    //private var title: String?
    var title: String?
    
    /*
     定义模型属性的时候，如果是对象，通常是可选的
     在需要的时候创建
     避免写构造函数，简化代码
     */
    
    /*
     使用KVC方法前，应该调用super.init()，保证对象实例化完成
     */
    //重载构造函数，使用字典为本类设置初始值
    //如果是基本数据类型，不能设置成可选的，而且需要设置初始值，否则KVC会崩溃
    //如果使用KVC,设置数值，属性不能是private
    init(dict: [String: AnyObject])
    {
        /*
         Use of 'self' in method call 'setValuesForKeys' before super.init initializes self
         */
        //保证对象已经完全初始化完成
        super.init()
        setValuesForKeys(dict)
    }
    
    override func setValue(_ value: Any?, forUndefinedKey key: String) {
        
    }
}
